package com.rad.net.protocol.android.http;

import java.io.InputStream;
import java.io.Serializable;
import java.util.Map;

/**
 * 类说明：响应对象，联网模块返回的响应结果对象
 * 
 * @author xinhui.cheng
 * @date 2014-8-15
 * @version 1.0
 */
public class Response implements Serializable{
	
	private static final long serialVersionUID = 1L;
	/**
	 * 联网请求返回的http状态码
	 */
	private int statusCode;
	/**
	 * 联网请求返回的http头
	 */
	private Map<String, String> header;
	/**
	 * 联网请求返回的流;
	 */
	private InputStream inputStream;

	/**
	 * 获取http状态码，成功时为200
	 * @return http状态码
	 */
	public int getStatusCode() {
		return statusCode;
	}

	/**
	 * 设置响应http状态码
	 * @param statusCode http状态码
	 */
	public void setStatusCode(int statusCode) {
		this.statusCode = statusCode;
	}

	/**
	 * 获取响应的头，以键值对的方式
	 * @return 响应头
	 */
	public Map<String, String> getHeader() {
		return header;
	}

	/**
	 * 设置响应头
	 * @param header 响应的头
	 */
	public void setHeader(Map<String, String> header) {
		this.header = header;
	}

	/**
	 * 获取响应对象输入流
	 * @return 响应的输入流
	 */
	public InputStream getInputStream() {
		return inputStream;
	}

	/**
	 * 设置响应对象输入流
	 * @param inputStream 响应的输入流
	 */
	public void setInputStream(InputStream inputStream) {
		this.inputStream = inputStream;
	}

	/**
	 * 获取header指定键的值
	 * @param key 指定的key
	 * @return value 指定key对应的value，没有对应值则返回null
	 */
	public String getHeaderParam(String key){
		if(header == null){
			return null;
		}
		return header.get(key);
	}
	
}
